Touch pad function modification

ABSTRACT

For modifying touchpad function, a control module employs interim controls in an interim state for a touchpad in response to detecting use of a pointer embedded in a keyboard in a touchpad state. The control module further employs pointing controls in a pointing state in response to satisfying pointing criteria in the interim state. The control module also employs touchpad controls in a touchpad state in response to satisfying touchpad criteria in the pointing state.

FIELD

The subject matter disclosed herein relates to touchpads and moreparticularly relates to touchpad function modification.

BACKGROUND Description of the Related Art

Button-less touchpads may include button zones that operate as controls.Such controls can be used with other pointing devices.

BRIEF SUMMARY

The inventors have recognized a need for an apparatus, method, andprogram product that modify touchpad function. An apparatus is disclosedfor modifying touchpad function. The apparatus includes a computerreadable storage medium and a control module. The computer readablestorage medium stores machine readable code executable by a processor.The control module employs interim controls in an interim state for atouchpad in response to detecting use of a pointer embedded in akeyboard in a touchpad state. The control module further employspointing controls in a pointing state in response to satisfying pointingcriteria in the interim state. The control module also employs touchpadcontrols in a touchpad state in response to satisfying touchpad criteriain the pointing state. The method and program product also perform thefunctions of the apparatus.

These features and advantages of the embodiments will become more fullyapparent from the following description and appended claims, or may belearned by the practice of the embodiments as set forth hereinafter.

BRIEF DESCRIPTION OF THE DRAWINGS

A more particular description of the embodiments briefly described abovewill be rendered by reference to specific embodiments that areillustrated in the appended drawings. Understanding that these drawingsdepict only some embodiments and are not therefore to be considered tobe limiting of scope, the embodiments will be described and explainedwith additional specificity and detail through the use of theaccompanying drawings, in which:

FIG. 1 is a perspective drawing illustrating one embodiment of acomputer;

FIG. 2 is a top view drawing illustrating one embodiment of a keyboard;

FIG. 3 is a schematic flow chart diagram illustrating one embodiment ofcontrol states;

FIG. 4 is a top view drawing illustrating one embodiment of controls fora touchpad state;

FIG. 5 is a top view drawing illustrating one embodiment of controls foran interim state;

FIG. 6 is a top view drawing illustrating one embodiment of controls fora pointing state;

FIG. 7 is a schematic block diagram illustrating one embodiment of acomputer;

FIG. 8 is a schematic block diagram illustrating one embodiment of amodification apparatus;

FIG. 9 is a schematic flow chart diagram illustrating one embodiment ofa touchpad modification method;

FIG. 10 is a schematic flowchart diagram illustrating one embodiment ofa pointer criteria determination method; and

FIG. 11 is a schematic flowchart diagram illustrating one embodiment ofa touchpad criteria determination method.

DETAILED DESCRIPTION

As will be appreciated by one skilled in the art, aspects of theembodiments may be embodied as a system, method or program product.Accordingly, embodiments may take the form of an entirely hardwareembodiment, an entirely software embodiment (including firmware,resident software, micro-code, etc.) or an embodiment combining softwareand hardware aspects that may all generally be referred to herein as a“circuit,” “module” or “system.” Furthermore, embodiments may take theform of a program product embodied in one or more computer readablestorage devices storing machine readable code. The storage devices maybe tangible, non-transitory, and/or non-transmission.

Many of the functional units described in this specification have beenlabeled as modules, in order to more particularly emphasize theirimplementation independence. For example, a module may be implemented asa hardware circuit comprising custom VLSI circuits or gate arrays,off-the-shelf semiconductors such as logic chips, transistors, or otherdiscrete components. A module may also be implemented in programmablehardware devices such as field programmable gate arrays, programmablearray logic, programmable logic devices or the like.

Modules may also be implemented in machine readable code and/or softwarefor execution by various types of processors. An identified module ofmachine readable code may, for instance, comprise one or more physicalor logical blocks of executable code which may, for instance, beorganized as an object, procedure, or function. Nevertheless, theexecutables of an identified module need not be physically locatedtogether, but may comprise disparate instructions stored in differentlocations which, when joined logically together, comprise the module andachieve the stated purpose for the module.

Indeed, a module of machine readable code may be a single instruction,or many instructions, and may even be distributed over several differentcode segments, among different programs, and across several memorydevices. Similarly, operational data may be identified and illustratedherein within modules, and may be embodied in any suitable form andorganized within any suitable type of data structure. The operationaldata may be collected as a single data set, or may be distributed overdifferent locations including over different computer readable storagedevices, and may exist, at least partially, merely as electronic signalson a system or network. Where a module or portions of a module areimplemented in software, the software portions are stored on one or moremachine readable storage devices.

Any combination of one or more computer readable medium may be utilized.The computer readable medium may be a machine readable signal medium ora machine readable storage medium such as a computer readable storagemedium. The machine readable storage medium may be a storage devicestoring the machine readable code. The storage device may be, forexample, but not limited to, an electronic, magnetic, optical,electromagnetic, infrared, holographic, micromechanical, orsemiconductor system, apparatus, or device, or any suitable combinationof the foregoing.

More specific examples (a non-exhaustive list) of the storage devicewould include the following: an electrical connection having one or morewires, a portable computer diskette, a hard disk, a random access memory(RAM), a read-only memory (ROM), an erasable programmable read-onlymemory (EPROM or Flash memory), a portable compact disc read-only memory(CD-ROM), an optical storage device, a magnetic storage device, or anysuitable combination of the foregoing. In the context of this document,a computer readable storage medium may be any tangible medium that cancontain, or store a program for use by or in connection with aninstruction execution system, apparatus, or device.

A machine readable signal medium may include a propagated data signalwith machine readable code embodied therein, for example, in baseband oras part of a carrier wave. Such a propagated signal may take any of avariety of forms, including, but not limited to, electro-magnetic,optical, or any suitable combination thereof. A machine readable signalmedium may be any storage device that is not a computer readable storagemedium and that can communicate, propagate, or transport a program foruse by or in connection with an instruction execution system, apparatus,or device. Machine readable code embodied on a storage device may betransmitted using any appropriate medium, including but not limited towireless, wireline, optical fiber cable, Radio Frequency (RF), etc., orany suitable combination of the foregoing.

Machine readable code for carrying out operations for embodiments may bewritten in any combination of one or more programming languages,including an object oriented programming language such as Java,Smalltalk, C++ or the like and conventional procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The machine readable code may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).

Reference throughout this specification to “one embodiment,” “anembodiment,” or similar language means that a particular feature,structure, or characteristic described in connection with the embodimentis included in at least one embodiment. Thus, appearances of the phrases“in one embodiment,” “in an embodiment,” and similar language throughoutthis specification may, but do not necessarily, all refer to the sameembodiment, but mean “one or more but not all embodiments” unlessexpressly specified otherwise. The terms “including,” “comprising,”“having,” and variations thereof mean “including but not limited to,”unless expressly specified otherwise. An enumerated listing of itemsdoes not imply that any or all of the items are mutually exclusive,unless expressly specified otherwise. The terms “a,” “an,” and “the”also refer to “one or more” unless expressly specified otherwise.

Furthermore, the described features, structures, or characteristics ofthe embodiments may be combined in any suitable manner. In the followingdescription, numerous specific details are provided, such as examples ofprogramming, software modules, user selections, network transactions,database queries, database structures, hardware modules, hardwarecircuits, hardware chips, etc., to provide a thorough understanding ofembodiments. One skilled in the relevant art will recognize, however,that embodiments may be practiced without one or more of the specificdetails, or with other methods, components, materials, and so forth. Inother instances, well-known structures, materials, or operations are notshown or described in detail to avoid obscuring aspects of anembodiment.

Aspects of the embodiments are described below with reference toschematic flowchart diagrams and/or schematic block diagrams of methods,apparatuses, systems, and program products according to embodiments. Itwill be understood that each block of the schematic flowchart diagramsand/or schematic block diagrams, and combinations of blocks in theschematic flowchart diagrams and/or schematic block diagrams, can beimplemented by machine readable code. These machine readable code may beprovided to a processor of a general purpose computer, special purposecomputer, or other programmable data processing apparatus to produce amachine, such that the instructions, which execute via the processor ofthe computer or other programmable data processing apparatus, createmeans for implementing the functions/acts specified in the schematicflowchart diagrams and/or schematic block diagrams block or blocks.

The machine readable code may also be stored in a storage device thatcan direct a computer, other programmable data processing apparatus, orother devices to function in a particular manner, such that theinstructions stored in the storage device produce an article ofmanufacture including instructions which implement the function/actspecified in the schematic flowchart diagrams and/or schematic blockdiagrams block or blocks.

The machine readable code may also be loaded onto a computer, otherprogrammable data processing apparatus, or other devices to cause aseries of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the program code which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The schematic flowchart diagrams and/or schematic block diagrams in theFigures illustrate the architecture, functionality, and operation ofpossible implementations of apparatuses, systems, methods and programproducts according to various embodiments. In this regard, each block inthe schematic flowchart diagrams and/or schematic block diagrams mayrepresent a module, segment, or portion of code, which comprises one ormore executable instructions of the program code for implementing thespecified logical function(s).

It should also be noted that, in some alternative implementations, thefunctions noted in the block may occur out of the order noted in theFigures. For example, two blocks shown in succession may, in fact, beexecuted substantially concurrently, or the blocks may sometimes beexecuted in the reverse order, depending upon the functionalityinvolved. Other steps and methods may be conceived that are equivalentin function, logic, or effect to one or more blocks, or portionsthereof, of the illustrated Figures.

Although various arrow types and line types may be employed in theflowchart and/or block diagrams, they are understood not to limit thescope of the corresponding embodiments. Indeed, some arrows or otherconnectors may be used to indicate only the logical flow of the depictedembodiment. For instance, an arrow may indicate a waiting or monitoringperiod of unspecified duration between enumerated steps of the depictedembodiment. It will also be noted that each block of the block diagramsand/or flowchart diagrams, and combinations of blocks in the blockdiagrams and/or flowchart diagrams, can be implemented by specialpurpose hardware-based systems that perform the specified functions oracts, or combinations of special purpose hardware and machine readablecode.

Descriptions of figures may refer to elements described in previousfigures, like numbers referring to like elements.

FIG. 1 is a perspective drawing illustrating one embodiment of acomputer 100. The computer 100 may be a laptop computer. One of skill inthe art will recognize that the embodiments may be practiced with othercomputer form factors that employ a touchpad 110. The computer 100includes the touchpad 110, a keyboard 115, and a pointer 105 in akeyboard area 120. The pointer 105 may be a TrackPoint pointer 105produced by Lenovo (Singapore) Pte. Ltd. The pointer 105 may employ astrain gauge or an optical sensor to convert motion into directioninformation.

The touchpad 110 may be used as a pointing device. The touchpad 110 maybe a button-less touchpad 110. Alternatively, the touchpad 110 mayinclude one or more control buttons.

The touchpad 110 may have areas that function as virtual buttons orcontrols. The controls may be activated within the touchpad 110 by atouching specified areas of the touchpad 110 as will be describedhereafter.

When a user is employing the pointer 105, it may be advantageous toemploy much of the area of the touchpad 110 as controls with variousfunctions. The embodiments described herein may automatically modify thecontrols of the touchpad 110 to support the user's current mode of usingthe pointer 105 and the touchpad 110.

FIG. 2 is a top view drawing illustrating one embodiment of the keyboardarea 120. The keyboard area 120 is a keyboard area 120 of FIG. 1. Theuser may employ both the pointer 105 and the touchpad 110 within thekeyboard area 120. The user may use the pointer 105 exclusively forpointing. The touchpad 110 may be used to provide controls and may notbe required for pointing. As a result, the areas and/or functions ofcontrols on the touchpad 110 may be modified to ease of use.

FIG. 3 is a schematic flow chart diagram illustrating one embodiment ofcontrol states 600. Each state 600 is indicative of the controls thatare available on the touchpad 110. The control states 600 include atouchpad state 605, an interim state 610, and a pointing state 615. Inone embodiment, the touchpad state 605 is an initial state. For examplethe touchpad state 605 may be employed with the computer 100 isactivated.

In the touchpad state 605, the touchpad 605 may function as a pointingdevice as well as provide controls. In one embodiment, touchpadcontrols, as will be described hereafter, are available on the touchpad110 in the touchpad state 605.

In one embodiment, the touchpad state 605 transitions to the interimstate 610 in response to detecting use of the pointer 105. In oneembodiment, the touchpad state 605 transitions to the interim state 610in response to a level of pointer use exceeding a pointer use threshold.

In the interim state 610, interim controls, as will be describedhereafter, are available on the touchpad 110. The interim state 610 maytransition to the touchpad state 605 in response to not satisfyingpointing criteria in the interim state 610. The pointing criteria willbe described hereafter. The interim state 610 may also transition to thepointing state 615 in response to satisfying pointing criteria in theinterim state 610.

Pointing controls are available in the pointing state 615. The pointingcontrols are described hereafter. The pointing state 615 may transitionto the touchpad state 605 in response to satisfying touchpad criteria inthe pointing state 615.

FIG. 4 is a top view drawing illustrating one embodiment of the touchpadcontrols 620 for the touchpad state 605. The touchpad controls 620include a primary button control 210 a, a tertiary control 205 a, and afirst secondary button control 215 a. In addition, the touchpad controls620 may include a one finger tap, a two-three finger tap, a one-threefinger count, a one finger scrolling region, a one finger drag, a twofinger drag, a generic gesture, a one finger edge swipe, a w-value, anda key-time.

The primary button control 210 a may be equivalent to a primary mousebutton such as a left mouse button. The secondary button control 215 amay be equivalent to a secondary mouse button such as a right mousebutton. The tertiary control 205 a may be equivalent to a tertiary mousecontrol such as a scroll wheel. In addition, the touchpad controls 620may allow the touchpad 110 to receive the one finger tap, the two-threefinger tap, the one-three finger count, the one finger scrolling region,the one finger drag, the two finger drag, the generic gesture, the onefinger edge swipe, the w-value, and the key-time. Specific functions maybe related to the one finger tap, the two-three finger tap, theone-three finger count, the one finger scrolling region, the one fingerdrag, the two finger drag, the generic gesture, the one finger edgeswipe, the w-value, and the key-time. Generic gestures may include butare not limited to a two finger pinch, a two finger rotate, a two fingerswipe, a three swipe, and a four finger swipe.

FIG. 5 is a top view drawing illustrating one embodiment of interimcontrols 625 for the interim state 610. The interim controls 625 includea primary button control 210 b, a tertiary control 205 b, a firstsecondary button control 215 b, and a second secondary button control220 b. The primary button control 210 b may be equivalent to a primarymouse button such as a left mouse button. Each secondary button control215 b, 220 b may be equivalent to a secondary mouse button such as aright mouse button. The tertiary control 205 b may be equivalent to atertiary mouse button such as a scroll wheel.

In addition, the generic gestures, the one finger edge swipe, and thew-value may be enabled. The one finger tap, the two-three finger tap,the one-three finger count, the one finger scrolling region, the onefinger drag, and the two finger drag may be suppressed.

FIG. 6 is a top view drawing illustrating one embodiment of pointingcontrols 630 for a pointing state 615. The pointing controls 630 includea primary button control 210 c, a tertiary control 205 c, and a secondsecondary button control 220 c. The primary button control 210 c may beequivalent to a primary mouse button such as a left mouse button. Thesecond secondary button control 220 c may be equivalent to a secondarymouse button such as a right mouse button. The tertiary control 205 cmay be equivalent to a tertiary mouse button such as a scroll wheel.

The pointing control 630 further includes a starting zone 225 and aresting zone 230. In one embodiment, the resting zone 230 is the area ofthe touchpad 110 outside of the starting zone 225. The controls for thetouchpad state 605, the interim state 610, and the pointer state 615 arelisted in table 1.

TABLE 1 Control Touchpad State Interim State Pointer State PrimaryButton P 210a P 210b P 210c + Starting Zone 220 Secondary Button S1 215aS1 215b + S2 S2 220c 220b Tertiary Button T 205a T 205b T 205c 1 FingerTap Enabled Suppressed Suppressed 2-3 Finger Tap Enabled SuppressedSuppressed 1-3 Finger Count Enabled Suppressed Suppressed 1 FingerScrolling Enabled Suppressed Suppressed Region 1 Finger Drag EnabledSuppressed Suppressed 2 Finger Drag Enabled Suppressed SuppressedGeneric Gesture Enabled Enabled Enabled 1 Finger Edge Enabled EnabledEnabled Swipe W-Value Enabled Enabled Enabled Key-time Enabled DisabledDisabled Pointer Filtering Disabled Disabled Disabled

Besides the controls listed in the above table, other control functionsmay be associated with the pointer 105 and the touchpad 110, such asaudio, haptic, and backlighting function controls.

Although the controls as depicted are similar in the touchpad state 605,the interim state 610, and the pointing state 615, the controls need notoccupy the same area of the touchpad 110. For example, each of theprimary button controls 210 may be disposed in a different area of thetouchpad 110. Similarly, each secondary button control 215, 220 may bedisposed in a different area of the touchpad 110 and each tertiarybutton control 205 may also be disposed in a different area of thetouchpad 110.

FIG. 7 is a schematic block diagram illustrating one embodiment of acomputer 100. The computer 100 may be the computer 100 of FIG. 1. Thecomputer 100 includes a processor 305, a memory 310, and communicationhardware 315. The memory 310 may be a computer readable storage mediumsuch as a semiconductor storage device, a hard disk drive, an opticalstorage device, a micromechanical storage device, and combinationsthereof. The memory 310 may store machine readable code. The processor305 may execute the machine readable code. The communication hardware315 may communicate with the touchpad 110 and the pointer 105.

In one embodiment, the communication hardware 315 receives position dataindicating an absolute screen position, a relative motion on the screen,or combinations thereof from the touchpad 110 and/or the pointer 105.The communication hardware 315 may parse control activations and/or acursor position from the position data. Alternatively, the pointer 105and/or touchpad 110 may communicate the cursor position and/or thecontrol activations to the communication hardware 315.

FIG. 8 is a schematic block diagram illustrating one embodiment of amodification apparatus 350. The modification apparatus 350 includes acontrol module 320, the touchpad 110, and the pointer 105. Somefunctions of the control module 320, the touchpad 110, and the pointer105 may be implemented hardware. In one embodiment, the control module320 is at least partially embodied in a computer readable storage mediumsuch as the memory 310. The computer readable storage medium may storemachine readable code that when executed by the processor 305 performsthe operations of the control module 320.

The control module 320 may determine the controls employed for thetouchpad 110. In addition, the control module 320 may determine thecontrol state 600. In one embodiment, the control module 320 employs theinterim controls 625 in the interim state 610 for a touchpad 110 inresponse to detecting use of the pointer 105 embedded in the keyboard115 in a touchpad state 605.

The control module 320 may further employ the pointing controls 630 inthe pointing state 615 in response satisfying the pointing criteria inthe interim state 610. In addition, the control module 320 may employthe touchpad controls 620 in the touchpad state 605 in response tosatisfying touchpad criteria in the pointing state 615. The functions ofthe apparatus 350 will be described in greater detail in FIGS. 9-11.

FIG. 9 is schematic flow chart diagram illustrating one embodiment of acontrol modification method 500. The method 500 may perform thefunctions of the apparatus 350 and/or computer 100. The method 500 maybe performed by the processor 305. In addition, the method 500 may beperformed by machine readable code stored in a computer readable storagemedium such as the memory 310.

The method 500 starts, and in one embodiment, the control module 320employs 505 the touchpad controls 620 in the touchpad state 605 for thetouchpad 110. For example, the touchpad controls 620 as described forFIG. 4 may be employed for the touchpad 110.

The control module 320 may determine 510 if the pointer 105 is in use.In one embodiment, the control module 320 determines 510 that thepointer 105 is in use if data is received from the pointer 105.Alternatively, the control module 320 determines 510 the pointer 105 isin use if the pointer 105 indicates a change in cursor position. If thepointer 105 is not in use, the control module 320 continues to employ505 the touchpad controls 620 in the touchpad state 605.

If the pointer 105 is in use, the control module 320 may employ 515 theinterim controls 625 in the interim state 610 in response to detectingthe use of a pointer 105. During the interim state 610, the controlmodule 320 may determine 520 if pointing criteria are satisfied. In oneembodiment, the pointing criteria are satisfied if the pointer 105continues to be in use. The pointing criteria are described in moredetail in FIG. 10.

If the pointing criteria are not satisfied, the control module 320employs 505 the touchpad controls 620 in the touchpad state 605. If thepointing criteria are satisfied, the control module 320 may employ 525the pointing controls 630 in the pointing state 615. While in thepointing state 615, the control module 320 may further determine 530 iftouchpad criteria are satisfied. The touchpad criteria are described inmore detail in FIG. 11.

If the touchpad criteria are satisfied, the control module 320 employs505 the touchpad controls 620 in the touchpad state 605. If the touchpadcriteria are not satisfied, the control module 320 continues to employ525 the pointing controls 630 in the pointing state 615.

Thus the touchpad controls 620 are available to the user until the userbegins to use the pointer 105. The interim controls 625 are thenemployed until it is determined whether the pointing criteria aresatisfied, indicating that the user will likely use the pointer 105 forpointing functions. If the pointing criteria are not satisfied, thetouchpad controls 620 are again available to the user. If the pointingcriteria are satisfied, the pointing controls 630 are made available tothe user until there is an indication of the user will use the touchpad110 for pointing. In response to the indication that the user will usethe touchpad 110 for pointing, the touchpad controls 620 are again madeavailable to the user. Thus the embodiments automatically customize thecontrols for the touchpad 110 in response to the manner of the useremploying the touchpad 110 and the pointer 105.

FIG. 10 is a schematic flowchart diagram illustrating one embodiment ofa pointer criteria determination method 501. The method 501 may be thepointing criteria satisfied step 520 of FIG. 9. The method 501determines if the pointer criteria are satisfied. The method 501 mayperform the functions of the apparatus 350 and/or computer 100. Themethod 501 may be performed by the processor 305. In addition, themethod 501 may be performed by machine readable code stored in acomputer readable storage medium such as the memory 310.

The method 501 starts, and in one embodiment the control module 320determines 535 if the pointer 105 is in use. In one embodiment, thepointer 105 is in use if a pointing use counter does not equal zero. Thepointing use counter may be checked after a specified time interval.Alternatively, the pointing use counter may be checked periodically inthe course of program execution.

The control module 320 may set the pointing use counter to zero uponentering the interim state 605. The control module 320 may furtherincrement the pointing use counter each time the pointer 105 is used. Ifthe pointing use counter is not equal to zero, the pointer 105 may bedetermined 535 to be in use.

If the pointer 105 is not in use, the pointing criteria are notsatisfied 560 and the method 501 ends. If the pointer 105 is in use, thecontrol module 320 determines 540 if the starting zone requirement issatisfied. The starting zone requirement may be satisfied if only onefirst finger is on the touchpad 110 outside of the resting zone 230 andthe first finger makes a motion within the starting zone 225 on thetouchpad 110.

If the starting zone requirement is satisfied, the control module 320may reset the pointing use counter to zero. The control module 320 mayfurther determine 535 if the pointer 105 is in use.

If the starting zone requirement is not satisfied, the control module320 may determine 550 if the pointing use counter exceeds a pointingthreshold. In one embodiment, the pointing threshold is a nonzeronumber. If the pointing use counter does not exceed the pointingthreshold, the control module 320 continues to determine 535 if thepointer 105 is in use.

If the pointing use counter exceeds the pointing threshold, the pointingcriteria are satisfied 555 and the method 501 ends.

FIG. 11 is a schematic flowchart diagram illustrating one embodiment ofa touchpad criteria determination method 502. The method 502 may be thetouchpad criteria satisfied step 530 of FIG. 9. In one embodiment, themethod 502 determines if the touchpad criteria are satisfied. The method502 may perform the functions of the apparatus 350 and/or the computer100. The method 502 may be performed by the processor 305. In addition,the method 502 may be performed by machine readable code stored in acomputer readable storage medium such as the memory 310.

The method 502 starts, and in one embodiment the control module 320determines 565 if a pointing idle exceeds a pointing idle threshold. Inone embodiment, the pointing idle is a time interval from a last use ofthe pointer 105 to the current time. Alternatively, the pointing idle isa time interval from a second-to-last use of the pointer 105 to the lastuse of the pointer 105. The pointing idle threshold may be a timemeasured in seconds, milliseconds, or the like.

If the pointing idle does not exceed the pointing idle threshold, thecontrol module 320 continues to determine 565 if the pointing idle isgreater than the pointing idle threshold. If the pointing idle doesexceed the pointing idle threshold, the control module 320 determines570 if a keyboard idle exceeds a keyboard idle threshold. In oneembodiment, the keyboard idle is a time interval from the last use ofthe keyboard 115 to the current time. Alternatively, the keyboard idleis a time interval from a second-to-last use of the keyboard 115 to alast use of the keyboard 115. The keyboard idle threshold may be a timemeasured in seconds, milliseconds, or the like.

If the keyboard idle does not exceed the keyboard idle threshold, thecontrol module 320 continues to determine 565 if the pointing idle isgreater than the pointing idle threshold. If the keyboard idle doesexceed the keyboard idle threshold, the control module 320 may determine575 if the starting zone requirement is satisfied. If the starting zonerequirement is not satisfied, the control module 320 continues todetermine 565 if the pointing idle is greater than the pointing idlethreshold. If the starting zone requirement is satisfied, the touchpadcriteria are satisfied 580 and the method 502 ends.

The touchpad criteria may prevent the control module 320 from employingthe pointing controls 630 simply because the pointer 105 and thekeyboard 115 are not in use. If the touchpad criteria are satisfied inthe pointing state 615, the control module 320 modifies the controls ofthe touchpad 110 to employ the touchpad controls 620 in the touchpadstate 605. However, as long as the touchpad criteria is not satisfied inthe pointing state 615, the control module continues to employ thepointing controls 630 in the pointing state 615. Thus a user employingthe pointer 105 4 pointing functions may have access to the pointingcontrols 630 until the touchpad 110 is again used as a pointing device.As a result, the functions of the touchpad 110 are automaticallymodified in accordance with the user's use of the pointer 105 and thetouchpad 110.

Embodiments may be practiced in other specific forms. The describedembodiments are to be considered in all respects only as illustrativeand not restrictive. The scope of the invention is, therefore, indicatedby the appended claims rather than by the foregoing description. Allchanges which come within the meaning and range of equivalency of theclaims are to be embraced within their scope.

What is claimed is:
 1. An apparatus comprising: a processor; a memorystoring machine readable code executable executed by the processor to:employing interim controls in an interim state for a touchpad inresponse to detecting use of a pointer embedded between keys of akeyboard in a touchpad state, wherein the touchpad and the pointer eachdetermine a position for a single cursor and the interim controlscomprise a primary mouse button organized as a first area within thetouchpad in the interim state, employing pointing controls in a pointingstate in response to satisfying pointing criteria in the interim state,wherein the pointing controls comprise the primary mouse buttonorganized as a second area within the touchpad in the pointing state andthe pointing criteria are satisfied if pointing use exceeds a pointingthreshold, and employing touchpad controls in the touchpad state inresponse to satisfying touchpad criteria in the pointing state, whereinthe pointing controls comprise the primary mouse button organized as athird area within the touchpad in the touchpad state, wherein the thirdarea is larger than the first area and the first area is larger than thesecond area, and the touchpad criteria are satisfied if a pointing idleexceeds a pointing idle threshold and a keyboard idle exceeds a keyboardidle threshold, the pointing idle is a time interval from a last use ofthe pointer, and the keyboard interval is a time interval from a lastuse of the keyboard.
 2. The apparatus of claim 1, the control modulefurther employing the touchpad controls in the touchpad state inresponse to not satisfying the pointing criteria in the interim state.3. The apparatus of claim 1, wherein the pointing criteria are satisfiedif both the touchpad is not used for pointing and the pointing useexceeds the pointing threshold.
 4. The apparatus of claim 3, wherein thepointing criteria is satisfied if a starting zone requirement of thetouchpad is not satisfied, wherein the starting zone requirement issatisfied if only one first finger is on the touchpad outside of aresting zone and the first finger makes a motion within a starting zoneon the touchpad.
 5. The apparatus of claim 4, wherein the touchpadcriteria is satisfied if the starting zone requirement is satisfied andthe third area is larger than the first area and the first area islarger than the second area.
 6. The interim of claim 5, wherein theinterim controls further comprise a first secondary mouse button, asecond secondary mouse button, and a tertiary mouse control, thetouchpad controls comprise the tertiary mouse control and the firstsecondary mouse button control, and the pointing controls comprise thetertiary mouse control and the second secondary mouse button control. 7.A method comprising: employing, by use of a processor, interim controlsin an interim state for a touchpad in response to detecting use of apointer embedded between keys of a keyboard in a touchpad state, whereinthe touchpad and the pointer each determine a position for a singlecursor and the interim controls comprise a primary mouse buttonorganized as a first area within the touchpad in the interim state;employing pointing controls in a pointing state in response tosatisfying pointing criteria in the interim state, wherein the pointingcontrols comprise the primary mouse button organized as a second areawithin the touchpad in the pointing state and the pointing criteria aresatisfied if pointing use exceeds a pointing threshold; and employingtouchpad controls in the touchpad state in response to satisfyingtouchpad criteria in the pointing state, wherein the pointing controlscomprise the primary mouse button organized as a third area within thetouchpad in the touchpad state, wherein the third area is larger thanthe first area and the first area is larger than the second area, andthe touchpad criteria are satisfied if a pointing idle exceeds apointing idle threshold and a keyboard idle exceeds a keyboard idlethreshold, the pointing idle is a time interval from a last use of thepointer, and the keyboard interval is a time interval from a last use ofthe keyboard.
 8. The method of claim 7, further comprising employing thetouchpad controls in the touchpad state in response to not satisfyingthe pointing criteria in the interim state.
 9. The method of claim 7,wherein the pointing criteria are satisfied if both the touchpad is notused for pointing and the pointing use exceeds the pointing threshold.10. The method of claim 9, wherein the pointing criteria is satisfied ifa starting zone requirement on the touchpad is not satisfied, whereinthe starting zone requirement is satisfied if only one first finger ison the touchpad outside of a resting zone and the first finger makes amotion within a starting zone on the touchpad.
 11. The method of claim10, wherein the touchpad criteria is satisfied if the starting zonerequirement is satisfied.
 12. The method of claim 7, wherein the interimcontrols further comprise a first secondary mouse button, a secondsecondary mouse button, and a tertiary mouse control.
 13. The method ofclaim 7, wherein the touchpad controls comprise a tertiary mousecontrol, and the first secondary mouse button control.
 14. The method ofclaim 7, wherein the pointing controls comprise a tertiary mousecontrol, and the second secondary mouse button control.
 15. A programproduct comprising a non-transitory computer readable storage mediumstoring machine readable code executed by a processor to perform theoperations of: employing interim controls in an interim state for atouchpad in response to detecting use of a pointer embedded in akeyboard between keys of a touchpad state, wherein the touchpad and thepointer each determine a position for a single cursor and the interimcontrols comprise a primary mouse button organized as a first areawithin the touchpad in the interim state; employing pointing controls ina pointing state in response to satisfying pointing criteria in theinterim state, wherein the pointing controls comprise the primary mousebutton organized as a second area within the touchpad in the pointingstate and the pointing criteria are satisfied if pointing use exceeds apointing threshold; and employing touchpad controls in the touchpadstate in response to satisfying touchpad criteria in the pointing state,wherein the pointing controls comprise the primary mouse buttonorganized as a third area within the touchpad in the touchpad state,wherein the third area is larger than the first area and the first areais larger than the second area, and the touchpad criteria is satisfiedif a pointing idle exceeds a pointing idle threshold and a keyboard idleexceeds a keyboard idle threshold, the pointing idle is a time intervalfrom a last use of the pointer, and the keyboard interval is a timeinterval from a last use of the keyboard.
 16. The program product ofclaim 15, the operations further comprising employing the touchpadcontrols in the touchpad state in response to not satisfying thepointing criteria in the interim state.
 17. The program product of claim15, wherein the pointing criteria are satisfied if both the touchpad isnot used for pointing and the pointing use exceeds the pointingthreshold.
 18. The program product of claim 17, wherein the pointingcriteria is satisfied if a starting zone requirement on the touchpad isnot satisfied, wherein the starting zone requirement is satisfied ifonly one first finger is on the touchpad outside of a resting zone andthe first finger makes a motion within a starting zone on the touchpad.19. The program product of claim 18, wherein the touchpad criteria issatisfied if the starting zone requirement is satisfied.
 20. The programproduct of claim 15, wherein the touchpad controls comprise tertiarymouse control and the first secondary mouse button control, and thepointing controls comprise the tertiary mouse control and the secondsecondary mouse button control.